package com.db.collections;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Random;

public class ArrayListVsLinkedListTest {
	static final String S = "String";
	static final int N = 1000;

	public static void main(String[] args) {
		ArrayList<String> al = new ArrayList<>(N);
		LinkedList<String> ll = new LinkedList<>();
		Random rand = new Random();
		int number;
		
		for (int i=0; i<N*10; i++) {
			number = rand.nextInt(Integer.MAX_VALUE);

			al.add(0, S + number);
			al.add(0, S + number);
			al.add(0, S + number);
			al.add(0, S + number);
			al.add(0, S + number);
			al.add(0, S + number);
			al.add(0, S + number);
			al.add(0, S + number);
			al.add(0, S + number);
			al.add(0, S + number);			
			
			number = rand.nextInt(Integer.MAX_VALUE);

			ll.add(0, S + number);
			ll.add(0, S + number);
			ll.add(0, S + number);
			ll.add(0, S + number);
			ll.add(0, S + number);
			ll.add(0, S + number);
			ll.add(0, S + number);
			ll.add(0, S + number);
			ll.add(0, S + number);
			ll.add(0, S + number);
						
		}
		
		al.clear();
		ll.clear();
		long t, t1;
		long avg, avg1;
		for (int i=0; i<N; i++) {
			number = rand.nextInt(Integer.MAX_VALUE);
			t = System.nanoTime();
			al.add(0, S + number);
			al.add(0, S + number);
			al.add(0, S + number);
			al.add(0, S + number);
			al.add(0, S + number);
			al.add(0, S + number);
			al.add(0, S + number);
			al.add(0, S + number);
			al.add(0, S + number);
			al.add(0, S + number);
			
			t1 = System.nanoTime();
			avg = t1-t;
			
			number = rand.nextInt(Integer.MAX_VALUE);
			t = System.nanoTime();
			ll.add(0, S + number);
			ll.add(0, S + number);
			ll.add(0, S + number);
			ll.add(0, S + number);
			ll.add(0, S + number);
			ll.add(0, S + number);
			ll.add(0, S + number);
			ll.add(0, S + number);
			ll.add(0, S + number);
			ll.add(0, S + number);
			
			t1 = System.nanoTime();
			avg1 = t1-t;

			System.out.printf("%d: %d - %d%n", i*10, avg, avg1);
			if (avg > avg1) {
			}
		}
	}

}
